﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StyleMVVM.Data;
#if !DOT_NET
using Windows.Foundation.Metadata;

#endif

namespace StyleMVVM.Data.Transform
{
	/// <summary>
	/// This service offers a code free way to transform from one type to another type.
	/// 
	/// </summary>
	public interface ITransformService
	{
		ITransformMap AddTransform();

		[DefaultOverload]
		void AddTransforms(IEnumerable<ITransformMapInfo> newTransforms);

		void AddTransforms(params ITransformMapInfo[] newTransforms);

		object Transform(object transformValue, Type tranformType);

		object Transform(object transformValue, Type tranformType, bool allowErrors, bool looseTransform);
	}
}